package week8;

/**
 *
 * 190. 颠倒二进制位
 * https://leetcode-cn.com/problems/reverse-bits/
 *
 *
 *
 * 执行结果：  通过  显示详情
 *
 * 添加备注
 * 执行用时：1 ms, 在所有 Java 提交中击败了100.00% 的用户
 * 内存消耗：38.2 MB, 在所有 Java 提交中击败了28.87% 的用户
 * 通过测试用例：600 / 600
 * 炫耀一下:
 *
 *
 */
public class Week8ReverseBits {

    public int reverseBits(int n) {
        int reverse = 0;

        for(int position = 0; position < 32 && n != 0; position++) {
            // 从低到高 逐位转换
            reverse |= (n & 1) << (31 - position);
            n >>>= 1;
        }

        return reverse;
    }
}
